package com.ruoyi.invoice.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 销项发票对象 sales_invoice
 * 
 * @author ruoyi
 * @date 2025-03-06
 */
@TableName("sales_invoice")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class SalesInvoice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @TableId(type = IdType.AUTO)
    private Long salesInvoiceId;

    /** 发票种类id */
    @Excel(name = "发票种类id")
    private Long invoiceTypeId;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date billingDate;

    /** 发票代码 */
    private String invoiceCode;

    /** 发票号码 */
    @Excel(name = "发票号码")
    private String invoiceNumber;

    /** 全电发票号码 */
    @Excel(name = "全电发票号码")
    private String fullElectricInvoiceNumber;

    /** 是否作废 0正常 1作废 */
    private Integer isCancelled;

    /** 客户id */
    @Excel(name = "客户id")
    private Long customerId;

    /** 车架号（税控机动车发票专属） */
    private String chassisNumber;

    /** 机器编码（税控机动车发票专属） */
    private String machineCode;

    /** 主管税务机关代码（税控机动车发票专属） */
    private String taxAuthorityCode;

    /** 认证状态 */
    @Excel(name = "认证状态")
    private Integer authenticationStatus;

    /** 认证日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "认证日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date authenticationDate;

    /** 备注 */
    private String remarks;

    /** 业务类型id */
    @Excel(name = "业务类型id")
    private Long businessTypeId;

    /** 模版id */
    private Long templateId;

    /** 录入发票明细（0是 1否） */
    private Integer isDetailEntered;

    /** 不含税金额 */
    private BigDecimal taxExcludedAmount;



    /** 合计税额 */
    @Excel(name = "合计税额")
    private BigDecimal taxAmount;

    /** 合计价格 */
    @Excel(name = "合计价格")
    private BigDecimal totalAmount;

    /** 凭证id */
    private Long voucherId;


}
